// pages/login/login.js
// 引入封装的request.js对象
import request from '../../utils/request'
const app = getApp()
Page({

  /**
   * 页面的初始数据
   */
  data: {
    phoneNumber: '18836906038'
  },
  // 监听输入
  onPhoneInput(e) {
    this.setData({
      phoneNumber: e.detail.value
    });
  },

  getPhoneNumber() {
    const phone = this.data.phoneNumber;
    // 调用后端接口，实现手机号登录
    const that = this;
    wx.showLoading({ title: '登录中...',duration: 500 })
    request({
      url:'/wxlogin',
      method:"get",
      data:{phone:this.data.phoneNumber},
      success(res){
          console.log("登录token",res);
          if (!res.data.token) {
            wx.hideLoading()
            wx.showToast({ title: '登录失败', icon: 'none' })
            return
          }
          // 把token放入到sessionStorage中
          wx.setStorageSync('token', res.data.token)
          // 一旦登录成功，在发送一个getWxInfo获取当前登录用户信息
          request({
            url:'/getwxInfo',
            method:"get",
            success(res){
                console.log("当前登录的用户信息：",res);
                // wx.setStorageSync('userInfo', res.data.user.userId)
                const userId = res.data?.user?.userId; 
                if (!userId) {
                  wx.showToast({ title: '未获取到用户ID', icon: 'none' })
                  return
                }
    
                // 2. 存储到本地缓存
                wx.setStorageSync('userId', userId); // 建议缓存键名统一为userId，与全局对应
                // wx.setStorageSync('userInfo', userId); // 如需保留userInfo键名可同步存储
    
                // 3. 存储到全局变量（关键：通过app实例访问）
                app.globalData.userId = userId; 
    
                wx.showToast({ title: '登录成功' })
                // 登录成功后跳转（如返回上一页）
                wx.navigateBack({ delta: 1 })
              },
              fail(err) {
                wx.hideLoading()
                console.error('获取用户信息失败', err)
              }
            })
          },
          fail(err) {
            wx.hideLoading()
            console.error('登录失败', err)
          }
          })
  },

   // 1. wx.login() —— 获取 code（用于获取 openid/session_key）
   onLogin() {
     // 微信授权登录操作
    wx.login({
      success: (res) => {
        console.log(res);
        // 使用临时code，调用微信服务接口获取用户唯一openid
        if (res.code) {
          console.log('【wx.login】获取到的 code：', res.code);
          // 使用 code 发送微信服务器接口，以获取唯一的 openid
            wx.request({
              url: 'https://api.weixin.qq.com/sns/jscode2session?appid=wx45e45510a4a65a29&secret=073ce0e2dcffe8bdf82edd0a582a0b23&js_code='+res.code+'&grant_type=authorization_code',
              success:(res)=>{
                  // 即可获取当前用户的唯一openid
                  console.log(res);
              }
            })
        } else {
          console.error('【wx.login】登录失败：', res.errMsg);
        }
      },
      fail: (err) => {
        console.error('【wx.login】调用失败：', err);
      }
    });
  },

  onGetUserProfile() {
    // 获取
    wx.getUserProfile({
      desc: '用于展示用户信息', // 声明用途
      success: (res) => {
        console.log('【wx.getUserProfile】用户信息：', res.userInfo);
      },
      fail: (err) => {
        console.error('【wx.getUserProfile】用户拒绝授权：', err);
      }
    });
  },

   // 3. wx.getPhoneNumber() —— 获取用户手机号（需企业认证，用户授权）
   onGetPhoneNumber(e) {
    if (e.detail.code) {
      console.log('【wx.getPhoneNumber】获取到加密 code：', e.detail.code);
      // 后端使用 code 换取解密后的真实手机号
      wx.request({
        url: 'http://localhost:8080/phoneLogin/getPhoneNumber',
        method: 'POST',
        data: {
          code: e.detail.code
        },
        success(res) {
          console.log(res.data);
        }
      });
    } else {
      console.error('用户拒绝授权获取手机号');
    }  
    
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})